import pytest
import os
from datetime import datetime
from utils.log_util import get_logger

logger = get_logger()


def run_tests():
    """执行测试并生成报告"""
    # 创建报告目录
    report_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "reports")
    if not os.path.exists(report_dir):
        os.makedirs(report_dir)

    # 生成时间戳
    timestamp = datetime.now().strftime("%Y%m%d%H%M%S")

    # 报告文件路径
    html_report = os.path.join(report_dir, f"report_{timestamp}.html")

    # 执行测试
    logger.info("开始执行测试...")
    pytest.main([
        "-s",  # 显示标准输出
        "-v",  # 详细输出
        "--html=" + html_report,  # 生成HTML报告
        "--self-contained-html",  # HTML报告包含所有资源
        "testcases/"  # 测试用例目录
    ])
    logger.info(f"测试执行完成，报告已生成: {html_report}")


if __name__ == "__main__":
    run_tests()
